a. Field of the Invention
This invention relates to presenting a consistent cluster image to users of a multicomputer systems having access to shared files. Specifically, this invention relates to systems and methods for insuring that the global view of mounted filesystems is consistent.
b. Related Art
In a general purpose computing system, such as those supporting versions of the Unix operating system, applications may access data stored on disk drives by means of a set of operating system services including a filesystem. A filesystem is a set of files on a disk and the program tools for maintaining the set of files. Filesystems that control the physical representation of objects such as directories and files are known as physical filesystems. A physical filesystem can be thought of as including two parts, the programs that control the physical representation of the files and the files themselves as stored on the disk.
The process of making the files on a disk available to users of the computing system is referred to as "mounting a filesystem". When a filesystem is mounted, the filesystem's control program reads certain information from the disk concerning the layout of filesystem objects. From this information, the filesystem constructs data structures known as "virtual filesystems" or VFS's. Each time a file is opened, or made accessible, the filesystem creates a data structure, referred to as a "vnode", which is chained to the VFS.
Each vnode contains information about a given file and contains pointers to data structures known as "gnodes", "inodes" and "cnodes". The "gnodes", "inodes" and "cnodes" contain information such as the owner of the file, the size of the file, the date and time of the file's creation and the location of the blocks of the file on the disk. When Unix filesystems are mounted, they are generally "mounted over" a "stub" directory that acts as a placeholder and allows a system's filesystem hierarchy to resemble an uninterrupted tree.
In a networking environment, a number of Unix computing systems can be interconnected by way of a communication network and can share files by way of a distributed filesystem. Access to the shared files is coordinated by program modules referred to as the physical filesystem importer and the physical filesystem exporter. The filesystem exporter is typically executed on the server node (the computing system that is attached to the disk containing the filesystem data), while the filesystem importer is typically executed on the client nodes (other nodes that wish to access the files on the disk). Accesses to shared files made by users on the client nodes are referred to as "remote" accesses. Accesses to shared files made by users on the server node are referred to as "local" accesses.
The physical filesystem exporter processes requests for filesystem operations from remote clients. The exporter acts as an interface between the remote clients virtual filesystems and the physical filesystem, performing any physical filesystem manipulation required to process the requests. The physical filesystem importer is the client side interface to the physical filesystem exporter. The importer intercepts requests for filesystem operations on the virtual filesystems and appropriately formats corresponding request messages for processing by the physical filesystem exporter.
In systems utilizing a non cache-coherent remote filesystem, such as NFS, the user-accessible filesystem on the server node is generally the physical filesystem. Direct user accesses to the servers physical filesystem precludes the use of a consistency protocol software layer to ensure cache coherency. Thus, in such systems there is the possibility of an inconsistent filesystem image across the nodes on the network.
In the event that the physical filesystem being exported by a server is imported on the same node by a remote filesystem such as NFS, there are several confusing side effects. One of these side effects is that there is more than one path to access the same set of files (the NFS path and the physical path). These paths have different names and potentially different behaviors. Both filesystems are represented to users and administrators (collectively referred to as users) via the administrative utilities provided to manage filesystems. Having multiple, inconsistent views of the same physical filesystem can be confusing to users and may result in mistakes and loss of data.